package com.love.marriage.userPartnerPreferences.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.love.marriage.common.vo.BaseVo;
import com.love.marriage.config.Long2StringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * description:  用户择偶要求表Vo
 * author:       mybatisPlus
 * createDate:   2024-10-29 22:13:42
 * version:      1.0.0
 */
@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "UserPartnerPreferencesVo", description = "用户择偶要求表Vo")
public class UserPartnerPreferencesVo extends BaseVo<UserPartnerPreferencesVo>{

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(name = "userId", description = "用户ID，关联用户表", type = "Long", implementation = Long.class)
    private Long userId;

    @Schema(name = "ageFrom", description = "理想年龄范围起始值", type = "Integer", implementation = Integer.class)
    private Integer ageFrom;

    @Schema(name = "ageTo", description = "理想年龄范围结束值", type = "Integer", implementation = Integer.class)
    private Integer ageTo;

    @Schema(name = "heightFrom", description = "理想身高范围起始值（单位：cm）", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal heightFrom;

    @Schema(name = "heightTo", description = "理想身高范围结束值（单位：cm）", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal heightTo;

    @Schema(name = "weightFrom", description = "理想体重范围起始值（单位：kg）", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal weightFrom;

    @Schema(name = "weightTo", description = "理想体重范围结束值（单位：kg）", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal weightTo;

    @Schema(name = "educationLevel",        description = "理想学历（如：本科、硕士）", type = "String", implementation = String.class)
    private String educationLevel;

    @Schema(name = "profession", description = "理想职业", type = "String", implementation = String.class)
    private String profession;

    @Schema(name = "incomeRange", description = "理想收入范围（如：5K-10K）", type = "String", implementation = String.class)
    private String incomeRange;

    @Schema(name = "housingCarStatus", description = "理想车房情况（如：有房无车、车房都有）", type = "String", implementation = String.class)
    private String housingCarStatus;

    @Schema(name = "maritalStatus", description = "理想婚姻状况（如：未婚、离异）", type = "String", implementation = String.class)
    private String maritalStatus;

    @Schema(name = "location", description = "理想区域", type = "String", implementation = String.class)
    private String location;

    @Schema(name = "provinceId", description = "省id", type = "Integer", implementation = Integer.class)
    private Integer provinceId;

    @Schema(name = "provinceName", description = "省名称", type = "String", implementation = String.class)
    private String provinceName;

    @Schema(name = "cityId", description = "城市id", type = "Integer", implementation = Integer.class)
    private Integer cityId;

    @Schema(name = "cityName", description = "城市名称", type = "String", implementation = String.class)
    private String cityName;

    @Schema(name = "districtId", description = "区id", type = "Integer", implementation = Integer.class)
    private Integer districtId;

    @Schema(name = "districtName", description = "区名称", type = "String", implementation = String.class)
    private String districtName;

    @Schema(name = "educationLevelName", description = "理想学历名称", type = "String", implementation = String.class)
    private String educationLevelName;

    @Schema(name = "professionName", description = "理想职业名称", type = "String", implementation = String.class)
    private String professionName;

    @Schema(name = "incomeRangeName", description = "理想收入范围名称", type = "String", implementation = String.class)
    private String incomeRangeName;

    @Schema(name = "housingCarStatusName", description = "理想车房情况名称", type = "String", implementation = String.class)
    private String housingCarStatusName;

    @Schema(name = "maritalStatusName", description = "理想婚姻状况名称", type = "String", implementation = String.class)
    private String maritalStatusName;
}
